www.gusucode.com > VC++网络版的打字软件源程序-源码程序 > VC++网络版的打字软件源程序-源码程序\code\TypeClt V2.0\MainView.cpp
//Download by http://www.NewXing.com // MainView.cpp : implementation file // #include "stdafx.h" #include "type.h" #include "TypeDoc.h" #include "MainView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMainView IMPLEMENT_DYNCREATE(CMainView, CView) CMainView::CMainView() { } CMainView::~CMainView() { } BEGIN_MESSAGE_MAP(CMainView, CView) //{{AFX_MSG_MAP(CMainView) ON_WM_CREATE() ON_WM_PAINT() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMainView drawing void CMainView::OnDraw(CDC* pDC) { CDocument* pDoc = GetDocument(); // TODO: add draw code here CRect rect; GetClientRect(&rect); CString str; str.LoadString(IDS_TITLE); CFont font; font.CreatePointFont(400,"华文行楷",pDC); CFont* pOldFont=pDC->SelectObject(&font); COLORREF clf=pDC->SetTextColor(RGB(192,192,192)); pDC->DrawText(str,rect,DT_SINGLELINE | DT_VCENTER | DT_CENTER); pDC->SetTextColor(clf); pDC->SelectObject(pOldFont); } ///////////////////////////////////////////////////////////////////////////// // CMainView diagnostics #ifdef _DEBUG void CMainView::AssertValid() const { CView::AssertValid(); } void CMainView::Dump(CDumpContext& dc) const { CView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CMainView message handlers int CMainView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here //CTypeDoc* pDoc=(CTypeDoc*)GetDocument(); //pDoc->m_pView=this; return 0; } void CMainView::OnPaint() { // TODO: Add your message handler code here CPaintDC* pDC=new CPaintDC(this); // 创建设备上下文 CBitmap bmp; RECT Rect; RECT RectView; POINT ptSize; CDC dcmem; BITMAP bm; int b = bmp.LoadBitmap(IDB_BG); //将位图取出; dcmem.CreateCompatibleDC(pDC); //创建兼容设备上下文。 dcmem.SelectObject(&bmp); //用设备上下文选择位图; dcmem.SetMapMode(pDC->GetMapMode()); //设置映射方式; GetObject(bmp.m_hObject, sizeof(BITMAP), (LPSTR)&bm); //映射位图; GetClientRect(&Rect); ptSize.x=bm.bmWidth; ptSize.y=bm.bmHeight; pDC->DPtoLP((LPPOINT)&ptSize,1); //设备单元to逻辑单元; GetClientRect(&RectView); CRect RectBmp = RectView; //当位图宽度容纳不下的处理 if((RectView.right - RectView.left) > bm.bmWidth) { RectBmp.left = RectView.left + (RectView.right - RectView.left - bm.bmWidth) / 2; RectBmp.right = bm.bmWidth; } else { RectBmp.left = RectView.left; RectBmp.right = RectView.right - RectBmp.left; } //当位图高度容纳不下的处理 if((RectView.bottom - RectView.top) > bm.bmHeight) { RectBmp.top = RectView.top + (RectView.bottom - RectView.top - bm.bmHeight) / 2; RectBmp.bottom = bm.bmHeight; } else { RectBmp.top = RectView.top; RectBmp.bottom = RectView.bottom - RectBmp.top; } //加载视图到设备上下文中 pDC->StretchBlt(RectBmp.left, RectBmp.top, RectBmp.right,\ RectBmp.bottom, &dcmem, 0, 0, bm.bmWidth, bm.bmHeight,\ SRCCOPY); //删除设备上下文 dcmem.DeleteDC(); CRect rect; GetClientRect(&rect); rect.top=rect.bottom-100; CString str; str.LoadString(IDS_TITLE); CFont font; font.CreatePointFont(400,"华文行楷",pDC); CFont* pOldFont=pDC->SelectObject(&font); COLORREF clf=pDC->SetTextColor(RGB(192,192,192)); int oMode=pDC->SetBkMode(TRANSPARENT); pDC->DrawText(str,rect,DT_SINGLELINE | DT_VCENTER | DT_CENTER); pDC->SetBkMode(oMode); pDC->SetTextColor(clf); pDC->SelectObject(pOldFont); // Do not call CView::OnPaint() for painting messages }